Method and system for selectively metering network traffic

ABSTRACT

An approach for resizing a network tunnel based on criteria associated with incoming traffic to the network is described. A tunnel management platform determines a frequency or a relevancy of network traffic matching predetermined class of service criteria. The tunnel management platform also calculates, based on the frequency or relevancy, a minimal amount of bandwidth to reserve for tunneling subsequent network traffic associated with the predetermined class of service criteria over a network of the service provider. A resizing of the network tunnel is then initiated based on the calculation in association with subsequent network traffic.

BACKGROUND INFORMATION

Network providers are continually challenged to deliver value andconvenience to consumers by providing compelling services and advancingthe underlying technologies. One area of interest has been thedevelopment of services and technologies for optimizing the flow oftraffic across a network tunnel. Traditionally, network providers employmetering to determine and regulate the influx of traffic conveyed acrossa network tunnel. By way of example, the metering results can then beused to resize the bandwidth capacity of the network tunnel toaccommodate subsequent traffic. Unfortunately, metering is typicallyperformed based on the total amount of traffic entering the tunnelwithout regard to the class of service of the traffic or otherconfigurable criteria. This results in the allocation of more networkbandwidth than is required, thereby impeding the efficiency of thenetwork.

Based on the foregoing, there is a need for resizing a network tunnelbased on criteria associated with incoming traffic to the network.

BRIEF DESCRIPTION OF THE DRAWINGS

Various exemplary embodiments are illustrated by way of example, and notby way of limitation, in the figures of the accompanying drawings inwhich like reference numerals refer to similar elements and in which:

FIG. 1 is a diagram of a system for resizing a network tunnel based oncriteria associated with incoming traffic to the network, according toone embodiment;

FIG. 2 is a diagram of a tunnel management platform, according to oneembodiment;

FIGS. 3A-3D are flowcharts of processes for resizing a network tunnelbased on criteria associated with incoming traffic to the network,according to various embodiments;

FIGS. 4A and 4B are diagrams of a user interface for resizing a networktunnel based on criteria associated with incoming traffic to thenetwork, according to various embodiments;

FIG. 5 is a diagram of a computer system that can be used to implementvarious exemplary embodiments; and

FIG. 6 is a diagram of a chip set that can be used to implement anembodiment of the invention.

DESCRIPTION OF THE PREFERRED EMBODIMENT

An apparatus, method and software for resizing a network tunnel based oncriteria associated with incoming traffic to the network are described.In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. It is apparent, however, to oneskilled in the art that the present invention may be practiced withoutthese specific details or with an equivalent arrangement. In otherinstances, well-known structures and devices are shown in block diagramform in order to avoid unnecessarily obscuring the present invention.

Although the various exemplary embodiments are described with respect tometering of a network tunnel, it is contemplated these embodiments haveapplicability to any data protocols, communication paths, methodologiesor systems for managing the resources of a network or any other types ofresources and/or infrastructures.

FIG. 1 is a diagram of a system for resizing a network tunnel based oncriteria associated with incoming traffic to the network, according toone embodiment. For the purpose of explanation, system 100 is shown toinclude one or more user devices 101 a-101 n (e.g., mobile device, smartphone, netbook, laptop, set-top box, or any communications enabledcomputing device), referred to herein collectively as user devices 101.Also, system 100 is shown to include one or more services 102 a-102 n(e.g., social networking service, content service, server platform),referred to herein collectively as services 102. The user devices 101and/or services 102 may be configured to access a network, i.e., serviceprovider network 109, as maintained by a network provider. One or moretunnels may be established in connection with service and/or datatransmission requests initiated by said user devices 101 and/or services102 via the service provider network 109. Although certain embodimentsare described with respect to tunnels, it is contemplated that theapproach described herein is applicable to communication paths ingeneral.

As mentioned previously, network providers often employ networktunneling techniques for supporting the transmission of data of varyingtypes (e.g., traffic) across their network. By way of example, a networktunnel is a type of dedicated connection established via anencapsulation or tunneling protocol, such as Layer 2 Tunneling Protocol(L2TP), Point-to-Point Tunneling Protocol (PPTP), Secure Shell (SSH),Multiprotocol Label Switching Label Switched Paths (MPLS LSPs) or thelike. Typically, the tunnel is established by way of a procedure whereinone network protocol (the delivery protocol at the client) encapsulatesa different payload protocol for accessing a network server/gateway. Theconnection is established to facilitate data transmission requestsinitiated by devices 101 and/or services 102, including those requiringdata security and/or for enabling data sharing across differentnetworks. Of note, one or more tunnels may be established via theservice provider network 109 to facilitate transmission of traffic formultiple different user devices 101 and/or services 102.

In general, tunnels must be large enough to ensure the proper flow ofdata of varying types, protocols and payloads. For this reason, networkproviders periodically adjust the size, i.e., bandwidth capacity, of anetwork tunnel to optimize the flow of traffic across the network 109.Typically, implementations of automatic tunnel resizing mechanisms canbe driven by formal Call (or Connection) Admission Control (CAC) oftraffic into the tunnel, metering of the traffic entering the tunnel ora combination of both.

In the case of metering, the total amount of traffic entering a tunnelis the primary criteria for determining how a tunnel is to be resized.For example, when a bulk, aggregate metering result is provided as inputto a resizing scheme/algorithm, this results in the reservation of morebandwidth capacity than required in an effort to accommodate trafficpayloads of higher classes of service (e.g., real-time data).Consequently, the resulting over expenditure of bandwidth capacityimpedes the overall efficiency of the network. Unfortunately, there isno convenient solution for enabling a network tunnel to be automaticallyresized based on customizable, network provider specified criteria.

To address this issue, system 100 presents a tunnel management platform103 that is configured to initiate resizing of a network tunnel based onselective metering criteria. Still further, the tunnel managementplatform 103 enables a weighting factor to be applied for establishing apriority or relevancy of incoming traffic based on the criteria. Incertain embodiments, the criterion is established by the networkprovider and configured for execution by the tunnel management platform103 in connection with a bandwidth allocation or tunnel resizing scheme.By way of this approach, the tunnel management platform 103 enables thebandwidth reservation requirements of a network 109 to be managed basedon configurable parameters (e.g., by the network provider).

In certain embodiments, the tunnel management platform 103 maintains acriteria database 105 for performing selective metering of a networktunnel. For the purpose of illustration, selective metering pertains toany means of monitoring and/or regulating the influx of traffic conveyedover a network tunnel based on one or more network provider selectedcriteria and/or parameters. The network traffic may include any numberand arrangement of data packets generated, via a communication/networkprotocol, for transporting a payload across a network (e.g., a serviceprovider network 109). The criteria may specify one or more rules,instructions or requirements for initiating the metering process basedon fulfillment of one or more conditions.

By way of example, the metering criteria may be generated to specify aclass of service type associated with incoming traffic. The class ofservice type may indicate a specific category of incoming data packetsbeing transmitted across a network tunnel and/or may indicate therelevancy of said packets. Under this scenario, the network provider mayassign a real-time class of service type to any data required tofacilitate real-time executions, such as video, internet telephony,multimedia or audio. Alternatively, a best effort class of service typemay indicate traffic that is to be transmitted over the network tunnelonly after transmission of higher priority data (if at all).

As another example, the class of service type may be assigned by thenetwork provider via the metering criteria to indicate a businesscategory of incoming data packets. Under this scenario, a prioritybusiness class may indicate a heightened urgency of incoming traffic(e.g., corporate or government data) while a standard business class maybe assigned to data of a lesser urgency (e.g., non-corporate or publicdata). Still further, the class of service type may be associated with aspecific customer size, account level, account type or subscriptionlevel, wherein traffic transmitted by certain customers or networksubscription classes takes precedence over others. It is noted thathistorical data regarding the customer, registered account settings orsubscription information may be accounted for in determining assignmentof a business class of service type.

The class of service type may also be defined by the network providervia criteria in relation to a particular protocol used to formulate thetraffic and encapsulate the payload data. Under this scenario, a classof service designation may be encapsulated within a designated datafield or header of an incoming data packet. Hence, in the case of apacket switched network, a 3-bit class of service (CoS) field may bepresent in an Ethernet frame header when 802.1Q virtual local areanetwork (VLAN) tagging is present. The field may specify a priorityvalue or class, such as in the case of a differentiated services codepoint (DSCP). It is noted that other classification mechanisms may alsobe employed according to different quality of service (QoS) disciplinesand architectures accordingly. It is also noted that the class ofservice type may be appended to incoming data packets as metadata or asone or more tags.

As another example, the class of service type may be defined by thenetwork provider via the selective metering criteria to correspond to aport connection type or level. The port type may be a classification ofthe type of end-to-end connection to formulate across a network. Underthis scenario, the port type may be specified as a numeric valuecorresponding to a particular network protocol, i.e., TransmissionControl Protocol (TCP), User Datagram Protocol (UDP), Stream ControlTransmission Protocol (SCTP) or Datagram Congestion Control Protocol(DCCP). The port type may also specify a different connection speed forfacilitating end-to-end transmission of traffic, i.e., T1 (1.533 Mbps),Fast Ethernet (100M), Gigabit Ethernet (1000M), etc. Still further, theport type may be defined per the criteria as a dedicated port, a privateport, a virtual port or dynamic port.

Still further, the class of service type may be defined by the networkprovider via the metering criteria based on oversubscriptionrequirements associated with incoming traffic as specified by thenetwork provider. By way of example, the oversubscription requirementsmay refer to the allocation of a minimum (guaranteed) amount ofbandwidth capacity to be reserved by the network provider foraccommodating different connection types and/or customers. Under thisscenario, the network provider may specify a first oversubscriptionclass as corresponding to a first level/percentage of oversubscriptionfor a given port, while a second oversubscription class may correspondto a second level of oversubscription for the port.

In certain embodiments, the network provider may access a configurationinterface of the tunnel management platform 103 for defining theselective metering criteria. The configuration interface may bepresented by way of an application 107 (e.g., browser) of a user device101. Under this scenario, the network provider may specify a particularclass of service type and/or associated conditions for defining a set ofmetering criteria in association with incoming traffic. In addition, thenetwork provider may specify one or more parameters of incoming trafficto enable cross-referencing of the traffic against the criteria. Forexample, the parameter may include a marking or identifier (e.g.,customer identifier, account identifier) within a data field forenabling further identification of incoming traffic relative to thecriteria.

It is noted by way of the above described examples that the selectivemetering criteria may be generated and/or customized by the networkprovider to account for different types and classes of traffic. Inaddition, the criteria are also established to account for the differentconnection fulfillment/tunnel establishment needs of the networkprovider. Each of the above described class of service types may also becorrelated with a designated bandwidth capacity.

In certain embodiments, the tunnel management platform 103 samplesincoming traffic to a network tunnel during a sampling period. Thesampling period may be designated by the network provider as a durationof time (e.g., a number of minutes) for metering the network based onestablished criteria. During the sampling period, for example, thenetwork tunnel compares the incoming network traffic against the classof service criteria to determine whether any of the traffic conforms toa specific class of service type. By way of example, the tunnelmanagement platform 103 may identify a class of service identifier inassociation with incoming traffic, wherein the identifier matches thecriteria.

As another example, the tunnel management platform 103 may identify aport type identifier for determining a match between the identifier andthe established criteria. During sampling, the tunnel managementplatform 103 also determines the total amount of traffic entered onto atunnel overall and/or by class of service type. The tunnel managementplatform 103 then stores the compiled results to a database forsubsequent analysis. It is noted that the sampling period may beperformed periodically or on demand by the network provider.

Upon completion of the sampling period, the tunnel management platform103 analyzes the results to determine a frequency or relevancy ofcertain class of service types. By way of example, the tunnel managementplatform 103 may present, via a reporting interface, statistics forindicating which class of service type is most prevalent. In addition,the reporting interface may indicate which parameters associated withincoming network traffic are frequently recurring and at whatcorresponding amount of bandwidth. Based on the determined patterns oftraffic per the sampling period, the network tunnel management platform103 then calculates a minimal amount of bandwidth required to bereserved for tunneling subsequent network traffic. The minimal amount ofbandwidth refers to an optimal amount of bandwidth to be allocated to atunnel for accommodating subsequent traffic conforming to same patternsor bandwidth sizing requirements. Of note, the minimal amount ofbandwidth represents a value that is less than an aggregate valuedetermined strictly on the basis of all incoming class types.

In certain embodiments, the tunnel management platform 103 initiatesexecution of a bandwidth resizing algorithm or scheme based on thedetermined minimal (optimal) bandwidth calculation. The bandwidthresizing algorithm or scheme may include one or more instructions forautomatically adapting the capacity of an established network tunnel. Byway of example, the scheme may be a bandwidth throttling scheme, trafficshaping scheme or a combination thereof. Moreover, the algorithm orscheme may be based on a resource reservation protocol (RSVP), aconstraint-based routing label distribution protocol (CR-LDP), atop-nodes algorithm, or a combination thereof. Any known or developingbandwidth resizing algorithms or schemes may be applied.

For the purpose of illustration, an exemplary use case is presented forenabling metering and subsequent network tunnel resizing to be performedbased on selectively configured class of service criteria (referred toherein as selective metering). Under this scenario, the tunnelmanagement platform 103 determines that incoming traffic correlated toeight specified classes, i.e., via a Class of Service (CoS) marking. Perthe analysis, the following is observed: Class 7=10 Mbps, Class 6=100Mbps, Class 5=50 Mbps, Class 4=10 Mbps, Class 3=100 Mbps, Class 2=0Mbps, Class 1=100 Mbps and Class 0=500 Mbps. An aggregate metered rateof 870 Mbps is determined along with a determined relevancy or frequencyof Class 5 and Class 3.

The tunnel management platform 103 determines a minimal amount ofbandwidth to reserve for establishing a tunnel based on the results. Forexample, as it is determined that only 150 Mbps of reserved bandwidth isrequired for the most relevant classes (Class 5 and Class 3), the tunnelmanagement platform 103 initiates a bandwidth tunnel algorithm/schemefor sizing the tunnel to accommodate 150 Mbps of traffic. Thisrepresents a greater than 82% reduction in the amount of bandwidth to bereserved versus the aggregate metered rate of 870 Mbps. It is noted thatany combination of classes could be used to determine the appropriatebandwidth reservation.

In certain embodiments, the relevancy or frequency of a given class ofservice type may be designated by the network provider by way of aweighting factor. The weighting factor may be a configurable weight(expressed as a percentage) that can be assigned to each class forperforming metering of a network tunnel. Under this approach, thenetwork provider is able to designate specific class of service types ashigher priority or more relevant than others regardless of thedetermined results of the sampling period; thus enabling certain classof service types to override others automatically. By way of example,the weighting factor may be assigned via the configuration interfacegenerated by the tunnel management platform 103 and associated with acorresponding class of service type via the criteria. As such,additional tunnel resizing results may be achieved.

For the purpose of illustration, an exemplary use case is presented forenabling metering and subsequent network tunnel resizing to be performedbased on a weighting factor associated with the class of servicecriteria (referred to as weighted metering). In the previous example, ametered bandwidth of 150 Mbps was calculated as the minimal (optimal)amount needed to be reserved for a tunnel via a bandwidth resizingscheme. However, under this scenario, Class 5 represents a real-timevoice class of service, where no oversubscription is allowed, whileClass 3 is a lower, bursty class of service wherein only half of themetered bandwidth is needed to drive tunnel bandwidth reservations(increased oversubscription). The network provider may specify aweighting factor for each class to accommodate these requirements.

In this example, Class 5 is assigned a weight of 100% whereas Class 3 isassigned a weight of 50%. All other class of service types are thenassigned a weight of 0%. The resultant metered traffic value is 100Mbps, with 50 Mbps assigned to Class 5 (e.g., 50 Mbps×100%) and 50 Mbpsfor Class 3 (e.g., 100 Mbps×50%). This is in contrast to the 150 Mbpsassociated with the selective metering approach described above, thusrepresenting a further reduction in the reservation requirement versusthe aggregate metering approach. As before, any combination of classesand associated weights can be used to determine the appropriatebandwidth reservation. Also, the tunnel management platform 103 may beconfigured to enable application of a weighting factor and networkprovider defined class of service types concurrently for facilitatingmetering of a network tunnel.

It is noted that the tunnel management platform 103 may be implementedas a system and/or network agnostic platform. As such, the platform 103may be configured to account for cross-system or cross-network class ofservice types and configurations, i.e., based on the specified selectivemetering criteria. Moreover, the tunnel management platform 103 may beconfigured to identify and respond to traffic originating from ortransmitted across the networks of different network providers.

The criteria may also be established and/or customized by the providerfor enabling the platform 103 to respond to traffic generated inaccordance with different protocols and/or payload encapsulationrequirements. Still further, the criteria may be generated to accountfor network devices, including arrays, routers (e.g., label switchrouters), switches, etc., conforming to different vendor and/ormanufacturer requirements.

It is noted that user devices 101 a-101 n may be any type of mobileterminal, fixed terminal, or portable terminal including a mobilehandset, station, unit, device, multimedia computer, multimedia tablet,Internet node, communicator, desktop computer, laptop computer, PersonalDigital Assistants (PDAs), smartphone or any combination thereof. It isalso contemplated that the UDs 101 a-101 n can support any type ofinterface for supporting the presentment or exchanging of data. Inaddition, user devices 101 a-101 n may facilitate various input meansfor receiving and generating information, including touch screencapability, keyboard and keypad data entry, voice-based input mechanismsand the like. Any known and future implementations of user devices 101are applicable. From the perspective of a customer, the user devices 101may initiate transmission of data across a network tunnel. From theperspective of a network provider, the user devices 101 facilitateaccess to the tunnel management platform 103.

In certain embodiments, user devices 101 a-101 n, the tunnel managementplatform 103 and other elements of system 100 may be configured tocommunicate via a service provider network 109. According to certainembodiments, one or more networks, such as data network 111, telephonynetwork 113, and/or wireless network 115, can interact with the serviceprovider network 109. Networks 109-115 may be any suitable wirelineand/or wireless network, and be managed by one or more providers. Forexample, telephony network 113 may include a circuit-switched network,such as the public switched telephone network (PSTN), an integratedservices digital network (ISDN), a private branch exchange (PBX), orother like network. Wireless network 115 may employ various technologiesincluding, for example, code division multiple access (CDMA), long termevolution (LTE), enhanced data rates for global evolution (EDGE),general packet radio service (GPRS), mobile ad hoc network (MANET),global system for mobile communications (GSM), Internet protocolmultimedia subsystem (IMS), universal mobile telecommunications system(UMTS), etc., as well as any other suitable wireless medium, e.g.,microwave access (WiMAX), wireless fidelity (WiFi), satellite, and thelike. Meanwhile, data network 111 may be any local area network (LAN),metropolitan area network (MAN), wide area network (WAN), the Internet,or any other suitable packet-switched network, such as a commerciallyowned, proprietary packet-switched network, such as a proprietary cableor fiber-optic network.

Although depicted as separate entities, networks 109-115 may becompletely or partially contained within one another, or may embody oneor more of the aforementioned infrastructures. For instance, serviceprovider network 109 may embody circuit-switched and/or packet-switchednetworks that include facilities to provide for transport ofcircuit-switched and/or packet-based communications. It is furthercontemplated that networks 109-115 may include components and facilitiesto provide for signaling and/or bearer communications between thevarious components or facilities of system 100. In this manner, networks109-115 may embody or include portions of a signaling system 7 (SS7)network, Internet protocol multimedia subsystem (IMS), or other suitableinfrastructure to support control and signaling functions.

According to exemplary embodiments, end user devices (not shown) may beutilized to communicate over system 100 and may include any customerpremise equipment (CPE) capable of sending and/or receiving informationover one or more of networks 109-115. For instance, voice terminal maybe any suitable plain old telephone service (POTS) device, facsimilemachine, etc., whereas mobile device (or terminal) may be any cellularphone, radiophone, satellite phone, smart phone, wireless phone, or anyother suitable mobile device, such as a personal digital assistant(PDA), pocket personal computer, tablet, customized hardware, etc.Further, computing device may be any suitable computing device, such asa VoIP phone, skinny client control protocol (SCCP) phone, sessioninitiation protocol (SIP) phone, IP phone, personal computer, softphone,workstation, terminal, server, etc.

It is noted, though not shown in the figure, that in certain embodimentsuser devices 101 a-101 n may be configured to establish peer-to-peercommunication sessions with each other using a variety oftechnologies—near field communication (NFC), Bluetooth, ZigBee,infrared, etc. Also, connectivity can be provided via a wireless localarea network (LAN). By way of example, a group of user devices 101 a-101n may be configured to a common LAN so that each device can be uniquelyidentified via any suitable network addressing scheme. For example, theLAN may utilize the dynamic host configuration protocol (DHCP) todynamically assign “private” DHCP internet protocol (IP) addresses toeach user device 101, i.e., IP addresses that are accessible to devicesconnected to the service provider network 109 as facilitated via arouter.

FIG. 2 is a diagram of a tunnel management platform, according to oneembodiment. The tunnel management platform 103 includes variousexecutable modules for performing one or more computing, data processingand network based instructions that in combination provide a means ofresizing a network tunnel. Such modules can be implemented in hardware,firmware, software, or a combination thereof. By way of example, thetunnel management platform 103 may include a class of service module203, resizing module 207, sampling module 205, user interface module 201and a communication interface 209.

In addition, the tunnel management platform 103 also accesses one ormore bandwidth resizing algorithms from a database 213 and class ofservice criteria from a database 105. It is noted that modules 201-209may access databases 105 and 213 for performing various functions.

In one embodiment, the user interface module 201 enables presentment ofa graphical user interface or command line interface for enablingnetwork provider access to the tunnel management platform 103. Thisincludes, for example, accessing of a configuration interface forenabling the user to select or directly specify criteria for definingvarious class of service types to associate with incoming traffic. Inaddition, the user interface module 201 may facilitate generation of areporting interface for indicating the frequency and/or relevancy ofnetwork traffic metered through a tunnel during a sampling periodexecuted via the sampling module 205. By way of example, the userinterface module 201 generates interfaces in response to applicationprogramming interfaces (APIs) or other function calls corresponding toan application 107 of user devices 101 of a network provider; thusenabling the display of graphics primitives.

It is noted that the user interface module 201 may also operate inconnection with a sampling module 205 for enabling execution of asampling interface. By way of example, the sampling interface may beconfigured to generate one or more user interface elements for defininga duration of the sampling period. In addition, the sampling interfacemay feature an action button for initiating execution of the samplingmodule 205, thus enabling storing of the results from metering ofincoming data packets based on the criteria. Also, the samplinginterface may operate in connection with or as a reporting interface forpresenting the results of the metering execution.

In one embodiment, the class of service module 203 determines whethernetwork traffic metered during a sampling period matches predeterminedcriteria established by the network provider. The class of servicemodule 203 enables various data and/or elements of incoming traffic tobe cross referenced against the defined criteria for determining acorrelation between the traffic and a class of service type. By way ofexample, the class of service module 203 identifies a marking, a tag orother data associated with incoming packets for specifying oridentifying a class of service type for the traffic. Alternatively, inthe case of explicit specification of class of service informationwithin a packet, the module 203 may parse incoming packets to determinea class of service type.

It is noted that the cross referencing of criteria with information inthe packet may include, for example, determining a source IP addressassociated with incoming traffic, determining a customer identifierassociated with incoming traffic, or the like. In the case of the IPaddress for instance, the class of service module 203 may crossreference the IP address against network registration information todetermine a corporate domain/user. Based on this, the class of servicemodule 203 may further associate the IP address with a business class ofservice type (e.g., priority class) based on identification of trafficoriginating from the customer.

The class of service module 203 also determines a minimal (optimal)bandwidth to assign (for reservation) to traffic of a given class ofservice type. By way of example, the class of service module 203receives the results—i.e., the sampling of traffic transmitted via atunnel—as compiled by the sampling module 205 during a sampling period.In addition, the class of service module 203 determines a weightingfactor to be applied to traffic conforming to the criteria. By way ofexample, the weighting factor may be expressly specified by a networkprovider via a configuration interface, with the input being passed tothe class of service module 203 for affecting a prioritization/weightingof different traffic types to a tunnel.

In one embodiment, the sampling module 205 initiates a sampling periodat the discretion of the network provider. By way of example, thesampling module 205 may operate in connection with the user interfacemodule 201 to facilitate network provider access to the platform 103 forperforming sampling. It is noted that the sampling may be performed inassociation with one or more metering schemes.

Once executed, the sampling module 205 stores metering results gatheredduring the sampling period as well as tabulates the bandwidth ofincoming traffic per the determined class of service type. In this case,the bandwidth may be determined for each individual class of servicetype identified via the criteria or based on the aggregate of traffic tothe tunnel. The results may be further analyzed by the sampling module205 to determine a relevancy or frequency of certain types of trafficper defined class of service type. This calculation is performed toenable the network provider to comprehend patterns of network trafficentering a tunnel and includes determining a minimal (optimal) bandwidthvalue to associate with each class of service type.

In one embodiment, the resizing module 207 initiates resizing of anetwork tunnel based on the determined minimal (optimal) bandwidth valuefor the respective class of service types observed over the network. Byway of example, the minimal bandwidth value is passed to the resizingmodule 207 by the sampling module 205 for establishing an amount ofbandwidth to associate with certain types of traffic. Still further, theresizing module 207 may apply a weighting factor to specific class ofservice types as submitted via a configuration interface of the userinterface module 201. Resultantly, the bandwidth resizing algorithm 213or scheme may include one or more instructions for automaticallyadapting or setting the allotted bandwidth capacity of a network tunnelbased on the weight, the minimal bandwidth value, specific class ofservice types, or a combination thereof

In one embodiment, a communication interface 209 enables formation of asession over a network 109 between the tunnel management platform 103and a user device 101 of a network provider. By way of example, thecommunication interface 209 executes various protocols and data sharingtechniques for enabling collaborative execution between a subscriber'suser device 101 (e.g., mobile devices, laptops, smartphones, tabletcomputers, desktop computers) and the tunnel management platform 103over the network 109. It is noted the communication interface 209 isalso configured to support a browser session—i.e., the retrieval ofcontent as referenced by a resource identifier for accessing variousinterfaces generated by the user interface module 201.

Also, while not shown, various monitoring systems may be accessed by thetunnel management platform 103 for detecting current data trafficlevels, error conditions, data exchange rates, network latencies,resource allocation levels and other conditions associated with theoperation of the service provider network 109. It is noted that themonitoring systems may provide feedback data to the resizing module 207for further affecting resizing of a network tunnel.

The above presented modules and components of the tunnel managementplatform 103 can be implemented in hardware, firmware, software, or acombination thereof. Though depicted as a separate entity in FIG. 1, itis contemplated that the tunnel management platform 103 may beimplemented for direct operation by respective UE 101 of a networkprovider. As such, the platform 103 may generate direct signal inputs byway of the operating system of the UE 101 for interacting with theapplication 107 as well as for monitoring various devices/systems withinthe service provider network 109. In another embodiment, one or more ofthe modules 201-209 may be implemented for operation by respective UE101 as a platform 103.

FIGS. 3A-3C are flowcharts of processes for resizing a network tunnelbased on criteria associated with incoming traffic to the network,according to various embodiments. In one embodiment, the tunnelmanagement platform 103 performs the process 300 and is implemented in,for instance, a chip set including a processor and a memory as shown inFIG. 6.

In step 301 of process 300 (FIG. 3A), the tunnel management platform 103determines, during a sampling period, network traffic that matches apredetermined class of service criteria of a network provider. Inanother step 303, the platform 103 determines, based on the sample, afrequency or a relevancy of network traffic matching the predeterminedclass of service criteria. The frequency or relevancy may be based on apattern of incoming traffic to the network tunnel during the samplingperiod. As noted previously, the criteria may define various class ofservice types for enabling identification of incoming traffic.

In another step 305, the tunnel management platform 103 calculates,based on the frequency or relevancy, a minimal amount of bandwidth toreserve for tunneling subsequent network traffic associated with thepredetermined class of service criteria over a network of the networkprovider. As noted previously, the minimal amount of bandwidth pertainsto an amount required based on the observed traffic patterns/historyrather than an aggregate amount based on the entry and transmission ofall traffic to a network tunnel. Per step 307, the platform 103 alsoinitiates, based on the calculation, a resizing of a network tunnelassociated with the subsequent network traffic. Of note, the subsequentnetwork traffic may include that received to the tunnel outside of thesampling period.

In step 309 of process 308 (FIG. 3B), the tunnel management platform 103associates a weighting factor with the network traffic matching thepredetermined class of service criteria. Per step 311, the platform 103calculates, based on the weighting factor, the amount of bandwidth toreserve for the subsequent network traffic associated with thepredetermined class of service criteria. As noted previously, theweighting factor may be assigned by a network provider to directlyindicate a relevancy or priority of traffic of one class of service typeversus another.

In step 313 of process 312 (FIG. 3C), the tunnel management platform 103compares, during the sampling period, the network traffic against thecriteria. In another step 315, the platform 103 determines a class ofservice identifier to associate with the network traffic. As mentionedbefore, the class of service identifier may be a data field of a packetcorresponding to incoming traffic. Alternatively, the identifier may beexpressed in the form of metadata or a tag associated with incomingtraffic. Per step 317, the platform 103 associates the network trafficwith the predetermined class of service criteria based on the class ofservice identifier.

In step 319 of process 318 (FIG. 3D), the tunnel management platform 103determines a bandwidth reservation scheme to associate with the tunnel.Per step 321, the platform 103 also initiates the bandwidth reservationscheme. Of note, the algorithm associated with the scheme regulates thebandwidth allocation according to the minimal amount of bandwidthdetermined to be reserved per step 305 of process 300 (FIG. 3A).

FIGS. 4A and 4B are diagrams of a user interface for resizing a networktunnel based on criteria associated with incoming traffic to thenetwork, according to various embodiments. For the purpose ofillustration, the diagrams are described with respect to an exemplaryuse case of a configuration interface 400 as accessed by a networkprovider. Under this scenario, a user of the configuration interface maybe a person having administrative authority granted by the networkprovider. It is noted that while the user interface depictionscorrespond to the process of resizing a network tunnel, the devices maybe configured to cause presentment of various additional screens basedon interaction of devices with the platform 103.

In FIG. 4A, the configuration interface 400 presents various userinterface elements for permitting the user to influence operation of thetunnel management platform 103. By way of example, various meteringscheme selection options are presented for enabling the user to specifya metering mode of operation to execute. This includes a “selectivemetering” action button 401 for initiating metering of incoming networktraffic based criteria selected by or established by the networkprovider. The user is also presented with a “weighted metering” actionbutton 403 for initiating metering of incoming network traffic based ona weighting factor associated with different class of service types.Also presented is a “both” action button 405 for enabling metering oftraffic based on a class of service type and applied weight. Stillfurther, a “none” action button 407 is presented for employing standardaggregated bandwidth metering or the like.

In this example, when the user selects the “selective metering” actionbutton 401, a table 409 for permitting user customization, entry orselection of criteria is active. The table may include, for example,columns for defining variables and/or parameters for performing meteringof traffic. For example, a type column 415 features cells for enablingthe user to define a type of parameter to be identified and/orassociated as class of service established criteria. Under thisscenario, the cells may be populated by the platform 103 to specify aclass of service type, while other cells (e.g., 427 and 429) may becustomized by the user. For example, the user may define the typeaccording to the requirements or jargon of the network provider.

Column 417 features cells for enabling a user to select via a menubutton 425 class of service types to be classified/observed during thesampling period. By way of example, the user may select from a class ofservice type menu of Ethernet (Priority Code Point) PCP for designatingthis particular traffic type. The user may also select other definedclasses, including IP Type of Service (TOS), Differentiated ServicesCode Point (DSCP) Class Selector, DSCP, Multiprotocol Label Switching(MPLS) Experiential, MPLS Traffic Class, IPV6 Traffic Class, etc.Alternatively, the user can manually provide the input via a keyboard orother data entry means.

Upon selection or entry, a class level 419 associated with the type maybe populated. For example, IPV6 related traffic may be assigned to Class6 depending on the transmission request while MPLS related traffic maybe assigned to Class 7. Assignments may be customized by the user or pera standard classification system. Table 2, for example, depicts thedifferent classes of service for the 3-bit PCP data field of a packetper the IEEE 802.1Q-2005 specification header. It is noted, however,that the way traffic is handled when assigned to any particular class isundefined.

TABLE 2 PCP Network priority Acronym Traffic characteristics 1 0(lowest) BK Background 0 1 BE Best Effort 2 2 EE Excellent Effort 3 3 CACritical Applications 4 4 VI Video, <100 ms latency 5 5 VO Voice, <10 mslatency 6 6 IC Internetwork Control 7 7 (highest) NC Network Control

Also presented via column 432 are various cells for indicating abandwidth capacity to associate with a selected/defined class of servicetype. The bandwidth capacity may be established by the user or based onknown standards associated with specific class types. It is noted thatfor this scenario, the weight column 421 is masked out to prevent entryof a weighting factor per the selective metering mode of operation.

The user is also presented with a data entry field 411 for specifying abandwidth reservation and/or resizing algorithm to associate with themetering operation. By way of example, the bandwidth reservation and/orresizing algorithm may be used to process the results collected duringsampling of network traffic per selective metering of the traffic. Alsopresented is a save action button 413 for permitting the user to storethe criteria established via the table 409 to a data file. This datafile may be used for cross referencing of subsequent network traffictransmitted via a tunnel against the established criteria.

In FIG. 4B, when the user selects the “weighted metering” action button403, the weight column 421 of the criteria table 409 is unmasked topermit user entry of a weighting factor for a defined class of servicetype. In contrast, the class level 419 is masked to prevent defining ofa class level for affecting prioritization of the specified class ofservice type. Under this scenario, the user applies a weighting factorto each specified input 417 for defining a class of service type. Forexample, the weight may be expressed as a percentage value forrepresenting the level of relevance or priority of the assigned input417 and/or type 415.

The exemplary techniques and systems presented herein enables resizingof a network tunnel to be driven based on the fulfillment of criteriaestablished by a network provided. Still further, the exemplarytechniques and systems herein enable a weight to be expressly applied asa means of prioritizing incoming traffic conforming to the establishedcriteria. The technique permits network providers to minimize the amountof bandwidth reserved for handling traffic transmitted over a networktunnel for increasing overall network efficiency.

The processes described herein for resizing a network tunnel based oncriteria associated with incoming traffic to the network may beimplemented via software, hardware (e.g., general processor, DigitalSignal Processing (DSP) chip, an Application Specific Integrated Circuit(ASIC), Field Programmable Gate Arrays (FPGAs), etc.), firmware or acombination thereof. Such exemplary hardware for performing thedescribed functions is detailed below.

FIG. 5 is a diagram of a computer system that can be used to implementvarious exemplary embodiments. The computer system 500 includes a bus501 or other communication mechanism for communicating information andone or more processors (of which one is shown) 503 coupled to the bus501 for processing information. The computer system 500 also includesmain memory 505, such as a random access memory (RAM) or other dynamicstorage device, coupled to the bus 501 for storing information andinstructions to be executed by the processor 503. Main memory 505 canalso be used for storing temporary variables or other intermediateinformation during execution of instructions by the processor 503. Thecomputer system 500 may further include a read only memory (ROM) 507 orother static storage device coupled to the bus 501 for storing staticinformation and instructions for the processor 503. A storage device509, such as a magnetic disk or optical disk, is coupled to the bus 501for persistently storing information and instructions.

The computer system 500 may be coupled via the bus 501 to a display 511,such as a cathode ray tube (CRT), liquid crystal display, active matrixdisplay, or plasma display, for displaying information to a computeruser. An input device 513, such as a keyboard including alphanumeric andother keys, is coupled to the bus 501 for communicating information andcommand selections to the processor 503. Another type of user inputdevice is a cursor control 515, such as a mouse, a trackball, or cursordirection keys, for communicating direction information and commandselections to the processor 503 and for adjusting cursor movement on thedisplay 511.

According to an embodiment of the invention, the processes describedherein are performed by the computer system 500, in response to theprocessor 503 executing an arrangement of instructions contained in mainmemory 505. Such instructions can be read into main memory 505 fromanother computer-readable medium, such as the storage device 509.Execution of the arrangement of instructions contained in main memory505 causes the processor 503 to perform the process steps describedherein. One or more processors in a multi-processing arrangement mayalso be employed to execute the instructions contained in main memory505. In alternative embodiments, hard-wired circuitry may be used inplace of or in combination with software instructions to implement theembodiment of the invention. Thus, embodiments of the invention are notlimited to any specific combination of hardware circuitry and software.

The computer system 500 also includes a communication interface 517coupled to bus 501. The communication interface 517 provides a two-waydata communication coupling to a network link 519 connected to a localnetwork 521. For example, the communication interface 517 may be adigital subscriber line (DSL) card or modem, an integrated servicesdigital network (ISDN) card, a cable modem, a telephone modem, or anyother communication interface to provide a data communication connectionto a corresponding type of communication line. As another example,communication interface 517 may be a local area network (LAN) card (e.g.for Ethernet™ or an Asynchronous Transfer Mode (ATM) network) to providea data communication connection to a compatible LAN. Wireless links canalso be implemented. In any such implementation, communication interface517 sends and receives electrical, electromagnetic, or optical signalsthat carry digital data streams representing various types ofinformation. Further, the communication interface 517 can includeperipheral interface devices, such as a Universal Serial Bus (USB)interface, a PCMCIA (Personal Computer Memory Card InternationalAssociation) interface, etc. Although a single communication interface517 is depicted in FIGS. 4A and 4B, multiple communication interfacescan also be employed.

The network link 519 typically provides data communication through oneor more networks to other data devices. For example, the network link519 may provide a connection through local network 521 to a hostcomputer 523, which has connectivity to a network 525 (e.g. a wide areanetwork (WAN) or the global packet data communication network nowcommonly referred to as the “Internet”) or to data equipment operated bya service provider. The local network 521 and the network 525 both useelectrical, electromagnetic, or optical signals to convey informationand instructions. The signals through the various networks and thesignals on the network link 519 and through the communication interface517, which communicate digital data with the computer system 500, areexemplary forms of carrier waves bearing the information andinstructions.

The computer system 500 can send messages and receive data, includingprogram code, through the network(s), the network link 519, and thecommunication interface 517. In the

Internet example, a server (not shown) might transmit requested codebelonging to an application program for implementing an embodiment ofthe invention through the network 525, the local network 521 and thecommunication interface 517. The processor 503 may execute thetransmitted code while being received and/or store the code in thestorage device 509, or other non-volatile storage for later execution.In this manner, the computer system 500 may obtain application code inthe form of a carrier wave.

The term “computer-readable medium” as used herein refers to any mediumthat participates in providing instructions to the processor 503 forexecution. Such a medium may take many forms, including but not limitedto computer-readable storage medium ((or non-transitory)—i.e.,non-volatile media and volatile media), and transmission media.Non-volatile media include, for example, optical or magnetic disks, suchas the storage device 509. Volatile media include dynamic memory, suchas main memory 505. Transmission media include coaxial cables, copperwire and fiber optics, including the wires that comprise the bus 501.Transmission media can also take the form of acoustic, optical, orelectromagnetic waves, such as those generated during radio frequency(RF) and infrared (IR) data communications. Common forms ofcomputer-readable media include, for example, a floppy disk, a flexibledisk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM,CDRW, DVD, any other optical medium, punch cards, paper tape, opticalmark sheets, any other physical medium with patterns of holes or otheroptically recognizable indicia, a RAM, a PROM, and EPROM, a FLASH-EPROM,any other memory chip or cartridge, a carrier wave, or any other mediumfrom which a computer can read.

Various forms of computer-readable media may be involved in providinginstructions to a processor for execution. For example, the instructionsfor carrying out at least part of the embodiments of the invention mayinitially be borne on a magnetic disk of a remote computer. In such ascenario, the remote computer loads the instructions into main memoryand sends the instructions over a telephone line using a modem. A modemof a local computer system receives the data on the telephone line anduses an infrared transmitter to convert the data to an infrared signaland transmit the infrared signal to a portable computing device, such asa personal digital assistant (PDA) or a laptop. An infrared detector onthe portable computing device receives the information and instructionsborne by the infrared signal and places the data on a bus. The busconveys the data to main memory, from which a processor retrieves andexecutes the instructions. The instructions received by main memory canoptionally be stored on storage device either before or after executionby processor.

FIG. 6 illustrates a chip set or chip 600 upon which an embodiment ofthe invention may be implemented. Chip set 600 is programmed to resize anetwork tunnel based on criteria associated with incoming traffic to thenetwork as described herein and includes, for instance, the processorand memory components described with respect to FIG. 5 incorporated inone or more physical packages (e.g., chips). By way of example, aphysical package includes an arrangement of one or more materials,components, and/or wires on a structural assembly (e.g., a baseboard) toprovide one or more characteristics such as physical strength,conservation of size, and/or limitation of electrical interaction. It iscontemplated that in certain embodiments the chip set 600 can beimplemented in a single chip. It is further contemplated that in certainembodiments the chip set or chip 600 can be implemented as a single“system on a chip.” It is further contemplated that in certainembodiments a separate ASIC would not be used, for example, and that allrelevant functions as disclosed herein would be performed by a processoror processors. Chip set or chip 600, or a portion thereof, constitutes ameans for performing one or more steps of resizing a network tunnelbased on criteria associated with incoming traffic to the network.

In one embodiment, the chip set or chip 600 includes a communicationmechanism such as a bus 601 for passing information among the componentsof the chip set 600. A processor 603 has connectivity to the bus 601 toexecute instructions and process information stored in, for example, amemory 605. The processor 603 may include one or more processing coreswith each core configured to perform independently. A multi-coreprocessor enables multiprocessing within a single physical package.Examples of a multi-core processor include two, four, eight, or greaternumbers of processing cores. Alternatively or in addition, the processor603 may include one or more microprocessors configured in tandem via thebus 601 to enable independent execution of instructions, pipelining, andmultithreading. The processor 603 may also be accompanied with one ormore specialized components to perform certain processing functions andtasks such as one or more digital signal processors (DSP) 607, or one ormore application-specific integrated circuits (ASIC) 609. A DSP 607typically is configured to process real-world signals (e.g., sound) inreal time independently of the processor 603. Similarly, an ASIC 609 canbe configured to performed specialized functions not easily performed bya more general purpose processor. Other specialized components to aid inperforming the inventive functions described herein may include one ormore field programmable gate arrays (FPGA) (not shown), one or morecontrollers (not shown), or one or more other special-purpose computerchips.

In one embodiment, the chip set or chip 600 includes merely one or moreprocessors and some software and/or firmware supporting and/or relatingto and/or for the one or more processors.

The processor 603 and accompanying components have connectivity to thememory 605 via the bus 601. The memory 605 includes both dynamic memory(e.g., RAM, magnetic disk, writable optical disk, etc.) and staticmemory (e.g., ROM, CD-ROM, etc.) for storing executable instructionsthat when executed perform the inventive steps described herein toresize a network tunnel based on criteria associated with incomingtraffic to the network. The memory 605 also stores the data associatedwith or generated by the execution of the inventive steps.

While certain exemplary embodiments and implementations have beendescribed herein, other embodiments and modifications will be apparentfrom this description. Accordingly, the invention is not limited to suchembodiments, but rather to the broader scope of the presented claims andvarious obvious modifications and equivalent arrangements.

What is claimed is:
 1. A method comprising: determining, during asampling period, network traffic that matches a predetermined class ofservice criteria of a network service provider; determining, based onthe sample, a frequency or a relevancy of network traffic matching thepredetermined class of service criteria; calculating, based on thefrequency or relevancy, a minimal amount of bandwidth to reserve fortunneling subsequent network traffic associated with the predeterminedclass of service criteria over a network of the service provider; andinitiating, based on the calculation, a resizing of a network tunnelassociated with the subsequent network traffic.
 2. A method of claim 1,further comprising: associating a weighting factor with the networktraffic matching the predetermined class of service criteria; andcalculating, based on the weighting factor, the amount of bandwidth toreserve for the subsequent network traffic associated with thepredetermined class of service criteria.
 3. A method of claim 1, furthercomprising: determining a bandwidth reservation scheme to associate withthe tunnel; and initiating the bandwidth reservation scheme, wherein theresizing of the tunnel is based on the bandwidth reservation scheme. 4.A method of claim 1, further comprising: comparing, during the samplingperiod, the network traffic against the class of service criteria,wherein the sampling period is associated with a metering procedure ofthe network.
 5. A method of claim 1, further comprising: determining aclass of service identifier to associate with the network traffic; andassociating the network traffic with the predetermined class of servicecriteria based on the class of service identifier.
 6. A method of claim1, wherein the class of service criteria defines different class ofservice types, a priority of the different class of service types, aport level associated with the different class of service types, aprotocol associated with the different class of service types or acombination thereof.
 7. A method of claim 6, wherein the weightingfactor is based on the frequency or relevancy of the different class ofservice types.
 8. A method of claim 7, wherein the weighting factor isbinary.
 9. A method of claim 1, wherein the sampling period is performedperiodically or on demand.
 10. A method of claim 1, wherein the networkis a label switched network.
 11. An apparatus comprising: at least oneprocessor; and at least one memory including computer program code forone or more programs, at least one memory and the computer program codeconfigured to, with at least one processor, cause the apparatus toperform at least the following, determining, during a sampling period,network traffic that matches a predetermined class of service criteriaof a network service provider; determining, based on the sample, afrequency or a relevancy of network traffic matching the predeterminedclass of service criteria; calculating, based on the frequency orrelevancy, a minimal amount of bandwidth to reserve for tunnelingsubsequent network traffic associated with the predetermined class ofservice criteria over a network of the service provider; and initiating,based on the calculation, a resizing of a network tunnel associated withthe subsequent network traffic
 12. An apparatus of claim 11, furthercomprising: associating a weighting factor with the network trafficmatching the predetermined class of service criteria; and calculating,based on the weighting factor, the amount of bandwidth to reserve forthe subsequent network traffic associated with the predetermined classof service criteria.
 13. An apparatus of claim 11, further comprising:determining a bandwidth reservation scheme to associate with the tunnel;and initiating the bandwidth reservation scheme, wherein the resizing ofthe tunnel is based on the bandwidth reservation scheme.
 14. Anapparatus of claim 11, further comprising: comparing, during thesampling period, the network traffic against the class of servicecriteria, wherein the sampling period is associated with a meteringprocedure of the network.
 15. An apparatus of claim 11, furthercomprising: determining a class of service identifier to associate withthe network traffic; and associating the network traffic with thepredetermined class of service criteria based on the class of serviceidentifier.
 16. An apparatus of claim 11, wherein the class of servicecriteria defines different class of service types, a priority of thedifferent class of service types, a port level associated with thedifferent class of service types, a protocol associated with thedifferent class of service types or a combination thereof.
 17. Anapparatus of claim 16, wherein the weighting factor is based on thefrequency or relevancy of the different class of service types.
 18. Anapparatus of claim 17, wherein the weighting factor is binary.
 19. Anapparatus of claim 11, wherein the sampling period is performedperiodically or on demand.
 20. An apparatus of claim 11, wherein thenetwork is a label switched network.